package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.UserTaskLike;

/**
 * 用户任务点赞/关注Service接口
 *
 * @author ruoyi
 * @date 2024-07-03
 */
public interface IUserTaskLikeService
{
    /**
     * 查询用户任务点赞/关注
     *
     * @param id 用户任务点赞/关注主键
     * @return 用户任务点赞/关注
     */
    public UserTaskLike selectUserTaskLikeById(Long id);

    /**
     * 查询用户任务点赞/关注列表
     *
     * @param userTaskLike 用户任务点赞/关注
     * @return 用户任务点赞/关注集合
     */
    public List<UserTaskLike> selectUserTaskLikeList(UserTaskLike userTaskLike);

    /**
     * 新增用户任务点赞/关注
     *
     * @param userTaskLike 用户任务点赞/关注
     * @return 结果
     */
    public int insertUserTaskLike(UserTaskLike userTaskLike);

    /**
     * 修改用户任务点赞/关注
     *
     * @param userTaskLike 用户任务点赞/关注
     * @return 结果
     */
    public int updateUserTaskLike(UserTaskLike userTaskLike);

    /**
     * 批量删除用户任务点赞/关注
     *
     * @param ids 需要删除的用户任务点赞/关注主键集合
     * @return 结果
     */
    public int deleteUserTaskLikeByIds(Long[] ids);

    /**
     * 删除用户任务点赞/关注信息
     *
     * @param id 用户任务点赞/关注主键
     * @return 结果
     */
    public int deleteUserTaskLikeById(Long id);

    /**
     * 切换任务点赞状态（点赞/取消点赞）
     *
     * @param userId 用户ID
     * @param taskId 任务ID
     * @return 结果（1点赞，0取消点赞）
     */
    public int toggleTaskLike(Long userId, Long taskId);

    /**
     * 检查用户是否已点赞某个任务
     *
     * @param userId 用户ID
     * @param taskId 任务ID
     * @return true已点赞，false未点赞
     */
    public boolean checkUserLikedTask(Long userId, Long taskId);
} 